<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/5/25
 * Time: 13:54
 */
namespace hotel\modules\api\controllers;

use hotel\common\models\App;
use hotel\common\models\Hotel;
use hotel\common\models\HotelSession;
use hotel\common\utils\Tool;
use Yii;
use yii\base\Controller;


class BasicController extends Controller
{
    private static $lifetime = 3600 * 24 * 7;//存储时间

    /*创建应用,由认证中心调取*/
    public function actionOpenApp()
    {
        if (Yii::$app->request->isPost) {
            $post = yii::$app->request->post();
            $app = new App();
            if (($appInfo = $app->addApp($post)) !== false) {
                //hotel_session表插入一条数据
                $hotel_session_model = New HotelSession();
                $hotel_session_model->appid = $appInfo['appid'];
                $hotel_session_model->save();

                //hotel表插入一条数据
                $hotel_model = New Hotel();
                $hotel_model->appid = $appInfo['appid'];
                $hotel_model->save();

                $backInfo = [0, '开通APP实例成功'];//返回信息
                return Tool::showRes($backInfo, ['appinfo' => $appInfo]);
            }
        }
        return Tool::showRes([400, '开通APP实例失败']);
    }


    public function actionUploadImage()
    {
        $allow_origin = array(
            'http://10.9.87.104:8089',
            'http://10.9.87.4:8089',
            'https://view.horsevision.cn'

        );
        $origin = $_SERVER['HTTP_ORIGIN'];
        if (in_array($origin, $allow_origin)) {
            header('Access-Control-Allow-Origin:' . $origin);
            header('Access-Control-Allow-Methods:POST,GET');
            header('Access-Control-Allow-Credentials:true');
        }
        $image = $_FILES['file']; // 获取图片
        $file_uploads = $image['tmp_name']; // 上传前的路径
        $fileName = date("his") . '_' . rand(10000, 99999);
        $fileSuffix = '.' . ltrim(strchr($image['type'], '/'), '/');  // 图片后缀名
        $folderName = date('Ymd');//放进今天日期的文件夹中
        $dir = Yii::$app->basePath . '/web/upload/' . $folderName . '/';//存放的路径（不包含文件名）
        if (!file_exists($dir)) {//创建今天日期的文件夹
            mkdir($dir, 0777, true);
            chmod($dir, 0777);
        }
        $move_to_file = $dir . '/' . $fileName . $fileSuffix; // 上传后的路径

        if (!is_uploaded_file($file_uploads)) {
            return Tool::showRes([400, '上传失败']);

        }
        if (move_uploaded_file($file_uploads, $move_to_file)) {
            $str = '/upload/' . $folderName . '/' . $fileName . $fileSuffix;
            return Tool::showRes([0, '上传成功'], $str);
        }
    }


    /*图片上传*/
    public function actionUploadImageTest()
    {
        header('Access-Control-Allow-Origin:*');
        $post = yii::$app->request->post();
        $image = $post['image'];
        $str = '';
        if (!empty($image)) {
            foreach ($image as $k => $v) {
                $picpath = $v['content'];
                $base64_image = str_replace(' ', '+', $picpath);
                //post方式接收的数据, 加号会被替换为空格, 需要重新替换回来, 若不是post数据, 不需要执行
                if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)) {
                    //定义图片储存文件目录
                    $folderName = date('Ymd');//放进今天日期的文件夹中
                    $dir = Yii::$app->basePath . '/web/upload/' . $folderName . '/';//存放的路径（不包含文件名）

                    //定义文件名称
                    $picname = date("his") . '_' . rand(10000, 99999);
                    if (!is_dir($dir)) {
                        //如果不存在就创建该目录
                        mkdir($dir, 0777, true);
                    }
                    //获取图片后缀
                    if ($result[2] == 'jpeg') {
                        $picdir = $picname . '.jpg';
                    } else {
                        $picdir = $picname . '.' . $result[2];
                    }
                    //图片名称
                    $image_url = $dir . '/' . $picdir;
                    //储存图片
                    $img_url = '';//图片路径
                    if (file_put_contents($image_url, base64_decode(str_replace($result[1], '', $base64_image)))) {
                        $img_url = substr($image_url, 9);
                        if (empty($str)) {
                            $str .= $img_url;
                        } else {
                            $str .= ',' . $img_url;
                        }
                    }
                } else {
                    return Tool::showRes([0, '上传成功'], $str);
                }
            }
            return Tool::showRes([0, '上传成功'], $str);

        } else {
            return Tool::showRes([400, '图片为空'], $str);
        }


    }
}